package com.woniu.utils;

import com.woniu.entity.RbacMenu;

import java.util.List;

/**
 * @author Rain
 * @Description :
 * @date 2022/09/12 17:09
 */
public class MyUtils {

    /**
     * 递归过滤不符合ID的对象
     * @param menus 需要过滤的list
     * @param ids 过滤的条件ID list
     * @return list为空,直接返回true
     * else执行完毕也返回true
     */
    public static boolean filterMenus(List<RbacMenu> menus, List<Integer> ids) {
        if (menus.isEmpty())
            return true;
        else {
            //反向遍历list
            for (int i = menus.size() - 1; i >= 0; i--) {
                //内部集合为空返回true才执行,不为空则继续调用自己向内递归
                if (filterMenus(menus.get(i).getRbacMenus(), ids)) {
                    //条件list中是否包含此对象的ID
                    boolean isContains = ids.contains(menus.get(i).getId());
                    //不包含则移除
                    if (!isContains)
                        menus.remove(i);
                }

            }
        }
        //方法执行完毕返回true
        return true;
    }
}
